package com.example.juegoenandroid;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

import org.xmlpull.v1.XmlSerializer;

import android.os.Bundle;
import android.os.Vibrator;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.util.Xml;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.Toast;

public class Resultado extends Activity {

	private final int LAGARTO=1;
	private final int SPOK=2;
	private final int PIEDRA=3;
	private final int TIJERA=4;
	private final int PAPEL=5;
	private int puntuacion1=0;
	private int puntuacion2=0;
	private Bundle intent;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_resultado);
		
		intent=getIntent().getExtras();
		
		int eleccion1=intent.getInt("eleccion1");
		int eleccion2=intent.getInt("eleccion2");
		System.out.println(eleccion1);
		System.out.println(eleccion2);
		
		ImageButton imagen1=(ImageButton) findViewById(R.id.ImagenEleccion1);
		ImageButton imagen2=(ImageButton) findViewById(R.id.ImagenEleccion2);
		
		asignarBoton(imagen1, eleccion1);
		asignarBoton(imagen2, eleccion2);
		
		
		if(ganador(eleccion1, eleccion2)==0)
		{
			Toast.makeText(this,"Empate",Toast.LENGTH_SHORT).
					show();
		}
		else if(ganador(eleccion1, eleccion2)==1)
		{
			Toast.makeText(this,"Gana "+intent.getString("nombre1"),Toast.LENGTH_SHORT).
			show();
			puntuacion1++;
			guardarResultado();
			
		}
		else if(ganador(eleccion1, eleccion2)==2)
		{
			Toast.makeText(this,"Gana "+intent.getString("nombre2"),Toast.LENGTH_SHORT).
			show();
			puntuacion2++;
			guardarResultado();
		}
		else
		{
			Toast.makeText(this,"error",Toast.LENGTH_LONG).
			show();
		}
		
		Button botonVolverPrincipio=(Button) findViewById(R.id.BottonVolverPrincipio);
		
		botonVolverPrincipio.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				finish();
				
			}
		});
		
		Button botonVolverJugar=(Button) findViewById(R.id.BottonVolverAJugar);
		
		botonVolverJugar.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Intent intent1=new Intent(Resultado.this, VentanaJugador1.class);
				intent1.putExtra("nombre1", intent.getString("nombre1"));
				intent1.putExtra("nombre2", intent.getString("nombre2"));
				intent1.putExtra("modo", intent.getBoolean("modo"));
				startActivity(intent1);
				
			}
		});
	}

	
	public void asignarBoton(ImageButton imagen, int res)
	{
		
		switch(res)
		{
		case LAGARTO:
			imagen.setImageDrawable(getResources().getDrawable(R.drawable.lagarto));
			break;
		case SPOK:
			imagen.setImageDrawable(getResources().getDrawable(R.drawable.im_spock));
			break;
		case PIEDRA:
			imagen.setImageDrawable(getResources().getDrawable(R.drawable.piedra));
			break;
		case TIJERA:
			imagen.setImageDrawable(getResources().getDrawable(R.drawable.tijeras));
			break;
		case PAPEL:
			imagen.setImageDrawable(getResources().getDrawable(R.drawable.papel));
			break;
		}
		
		
	}
	public int ganador(int j1,int j2)
	{
		if(j1==j2)
		{
			return 0;
		}
		if(j1==PIEDRA && j2==TIJERA)
		{
			return 1;
		}
		if(j1==PIEDRA && j2==LAGARTO)
		{	
			return 1;
		}
		if(j1==PAPEL && j2==PIEDRA)
		{
			return 1;
		}
		if(j1==PAPEL && j2==SPOK)
		{
			return 1;
		}
		if(j1==TIJERA && j2==PAPEL)
		{
			return 1;
		}
		if(j1==TIJERA && j2==LAGARTO)
		{
			return 1;
		}
		if(j1==LAGARTO && j2==PAPEL)
		{
			return 1;
		}
		if(j1==LAGARTO && j2==SPOK)
		{
			return 1;
		}
		if(j1==SPOK && j2==PIEDRA)
		{
			return 1;
		}
		if(j1==SPOK && j2==TIJERA)
		{
			return 1;
		}
		
		return 2;
	}
	
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.resultado, menu);
		return true;
	}


	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK) {
			
			Toast.makeText(this,"No hagas trampas",Toast.LENGTH_SHORT).
			show();
			
			Vibrator v = (Vibrator) getSystemService(VIBRATOR_SERVICE);
			v.vibrate(5000);
		     return true;
		     }
		return super.onKeyDown(keyCode, event);
	}
	
	
	
	protected void onRestart() {
		finish();
		super.onRestart();
	}
	
	public void guardarResultado()
	{
		FileOutputStream fout = null;
		String score1=Integer.toString(puntuacion1);
		String score2=Integer.toString(puntuacion2);

		   try {
			   fout = openFileOutput("test.xml", MODE_APPEND);
			
				   
				   XmlSerializer serializer = Xml.newSerializer();
			
				      serializer.setOutput(fout, "UTF-8");
				
				      serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
				
				      
				      serializer.startTag(null, "jugador");
						
				      serializer.attribute(null, "nombre", intent.getString("nombre1"));
				      
				      serializer.attribute(null, "puntuacion", score1);
				     		
				      serializer.endTag(null, "jugador");
				
				 				
				      serializer.startTag(null, "jugador");
									
				      serializer.attribute(null, "nombre", intent.getString("nombre2"));
				      
				      serializer.attribute(null, "puntuacion", score2);
				
				      serializer.endTag(null, "jugador");				 
				
				      serializer.endDocument();
				
				      serializer.flush();
				
			   
			   
			  
			   fout.close();
		   } catch (FileNotFoundException e)
		   {
					
			   Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
				
		   }
				   
		   catch (IllegalArgumentException e) 
		   {
					
			   e.printStackTrace();
		   } 
		   catch (IllegalStateException e) 
		   {
					
			   e.printStackTrace();
		   }
		   catch (IOException e) 
		   {
					
			   e.printStackTrace();
		   }
			
		   
	}
	
	

}
